package functional;

class This{
    void two(int i ,double d){}
    void three(int i ,double d,String s){}
    void four(int i ,double d,String s,char c){}
}

interface TwoArgs{
    void call2(This aThis,int i,double d);
}

interface ThreeArgs{
    void call3(This aThis,int i,double d,String s);
}

interface FourArgs{
    void call4(This aThis,int i,double d ,String s,char c);
}

public class MultiUnbound {
    public static void main(String[] args){
        TwoArgs twoArgs = This::two;
        ThreeArgs threeargs = This::three;
        FourArgs fourargs = This::four;
        This athis = new This();
        twoArgs.call2(athis,11,3.14);
        threeargs.call3(athis,11,3.14,"Three");
        fourargs.call4(athis,11,3.14,"Four",'z');
    }
}
